package com.jwsoft.manager.core.dao.model;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 
 *
 * @author wangtao
 * @since 2022-12-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("edu_live_place")
@Schema(name = "EduLivePlace", title = "", description = "实体类")
public class EduLivePlace extends Model<EduLivePlace> {

    private static final long serialVersionUID = 1L;

    @Schema(name = "livePlaceId", title = "居住证id")
    @TableId(value = "live_place_id", type = IdType.ASSIGN_ID)
    private String livePlaceId;

    @Schema(name = "sfzh", title = "证件号码")
    @TableField(value = "sfzh")
    private String sfzh;

    @Schema(name = "xm", title = "姓名")
    @TableField(value = "xm")
    private String xm;

    @Schema(name = "mzdm", title = "民族代码")
    @TableField(value = "mzdm")
    private String mzdm;

    @Schema(name = "mz", title = "民族名称")
    @TableField(value = "mz")
    private String mz;

    @Schema(name = "xbdm", title = "性别代码")
    @TableField(value = "xbdm")
    private String xbdm;

    @Schema(name = "xb", title = "性别名称")
    @TableField(value = "xb")
    private String xb;

    @Schema(name = "czztdmlx", title = "持证主体代码类型")
    @TableField(value = "czztdmlx")
    private String czztdmlx;

    @Schema(name = "qzrq", title = "签注日期")
    @TableField(value = "qzrq")
    private String qzrq;

    @Schema(name = "qzdqrq", title = "签注到期日期")
    @TableField(value = "qzdqrq")
    private String qzdqrq;

    @Schema(name = "zjztdm", title = "证件状态代码")
    @TableField(value = "zjztdm")
    private String zjztdm;

    @Schema(name = "zjzt", title = "证件状态名称")
    @TableField(value = "zjzt")
    private String zjzt;

    @Schema(name = "zjnbbh", title = "居住证内部编号")
    @TableField(value = "zjnbbh")
    private String zjnbbh;

    @Schema(name = "xzqhdm", title = "所属区划编码")
    @TableField(value = "xzqhdm")
    private String xzqhdm;

    @Schema(name = "xzqhmc", title = "行政区划名称")
    @TableField(value = "xzqhmc")
    private String xzqhmc;

    @Schema(name = "jzdz", title = "居住地址")
    @TableField(value = "jzdz")
    private String jzdz;

    @Schema(name = "kpbh", title = "卡片编号")
    @TableField(value = "kpbh")
    private String kpbh;

    @Schema(name = "fzrq", title = "发证日期")
    @TableField(value = "fzrq")
    private String fzrq;

    @Schema(name = "zxrq", title = "注销日期")
    @TableField(value = "zxrq")
    private String zxrq;

    @Schema(name = "zxyydm", title = "注销原因代码")
    @TableField(value = "zxyydm")
    private String zxyydm;

    @Schema(name = "zxyy", title = "注销原因名称")
    @TableField(value = "zxyy")
    private String zxyy;

    @Schema(name = "hksxdm", title = "户口省县代码")
    @TableField(value = "hksxdm")
    private String hksxdm;

    @Schema(name = "hksx", title = "户口省县名称")
    @TableField(value = "hksx")
    private String hksx;

    @Schema(name = "hjdz", title = "户籍地址")
    @TableField(value = "hjdz")
    private String hjdz;

    @Schema(name = "fzjgTyxydm", title = "签发机关统一社会信用代码")
    @TableField(value = "fzjg_tyxydm")
    private String fzjgTyxydm;

    @Schema(name = "dscCity", title = "所属地市")
    @TableField(value = "dsc_city")
    private String dscCity;

    @Schema(name = "dscAdmRegion", title = "所属区/县")
    @TableField(value = "dsc_adm_region")
    private String dscAdmRegion;

    @Schema(name = "fzdgajg", title = "发证地公安机关名称")
    @TableField(value = "fzdgajg")
    private String fzdgajg;

    @Schema(name = "fzdgajgdm", title = "签发机关代码")
    @TableField(value = "fzdgajgdm")
    private String fzdgajgdm;

    @Schema(name = "dscSydepTblname", title = "数源单位表名")
    @TableField(value = "dsc_sydep_tblname")
    private String dscSydepTblname;

    @Schema(name = "dscDatasrTblname", title = "数据来源表名(清洗库或基础库 表名)")
    @TableField(value = "dsc_datasr_tblname")
    private String dscDatasrTblname;

    @Schema(name = "dscDwRksj", title = "地市仓数据入库时间")
    @TableField(value = "dsc_dw_rksj")
    private String dscDwRksj;

    @Schema(name = "dscHashUnique", title = "业务主键MD5值（清洗增加）")
    @TableField(value = "dsc_hash_unique")
    private String dscHashUnique;

    @Schema(name = "dscCleanTimestamp", title = "清洗时间（清洗增加）")
    @TableField(value = "dsc_clean_timestamp")
    private String dscCleanTimestamp;

    @Schema(name = "dscSydepName", title = "数源单位")
    @TableField(value = "dsc_sydep_name")
    private String dscSydepName;

    @Schema(name = "dscSydepSys", title = "数据所属系统名称")
    @TableField(value = "dsc_sydep_sys")
    private String dscSydepSys;

    @Schema(name = "dscSydepCode", title = "数源单位代码")
    @TableField(value = "dsc_sydep_code")
    private String dscSydepCode;

    @Schema(name = "dscBizOperation", title = "I 插入 U 更新 D 删除")
    @TableField(value = "dsc_biz_operation")
    private String dscBizOperation;

    @Schema(name = "year", title = "年份")
    @TableField(value = "year")
    private Integer year;

    @Schema(name = "del", title = "0,未删除,1,已删除")
    @TableField(value = "del", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    @TableLogic
    private String del;

    @Schema(name = "createName", title = "创建人")
    @TableField(value = "create_name", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    private String createName;

    @Schema(name = "createTime", title = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    private Date createTime;

    @Schema(name = "updateName", title = "修改人")
    @TableField(value = "update_name", fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL)
    private String updateName;

    @Schema(name = "updateTime", title = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL)
    private Date updateTime;

    @Schema(name = "areaCode", title = "行政区划")
    @TableField(value = "area_code")
    private String areaCode;

    @Schema(name = "materials", title = "佐证材料")
    @TableField(value = "materials")
    private String materials;

    @Schema(name = "sourceType", title = "数据来源：1 大数据获取 2管理员录入 3 学校录入")
    @TableField(value = "source_type")
    private String sourceType;

    @Override
    public Serializable pkVal() {
        return this.livePlaceId;
    }
}
